@echo off
REM Eagle Blog Database Test Script for Windows
REM 使用方法: scripts\test-db.bat

echo ========================================
echo Eagle Blog Database Test
echo ========================================
echo.

REM 检查 MySQL 客户端
echo [1/4] 检查 MySQL 客户端...
mysql --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未找到 MySQL 客户端
    echo 请安装 MySQL 客户端或使用 Docker
    pause
    exit /b 1
)
echo ✓ MySQL 客户端已安装

REM 检查 Docker 服务
echo [2/4] 检查 Docker 服务...
docker --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 警告: 未找到 Docker，将尝试直接连接 MySQL
    goto :direct_connect
)
echo ✓ Docker 已安装

REM 检查数据库容器
echo [3/4] 检查数据库容器...
docker ps | findstr "eagle-db" >nul
if %errorlevel% neq 0 (
    echo 数据库容器未运行，尝试启动...
    cd deploy\docker-compose
    docker-compose up -d db redis
    timeout /t 10 /nobreak >nul
    cd ..\..
)
echo ✓ 数据库容器已运行

:direct_connect
REM 测试数据库连接
echo [4/4] 测试数据库连接...
mysql -h localhost -P 3306 -u root -p123456 -e "SELECT 1;" >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 无法连接到数据库
    echo 请检查:
    echo 1. MySQL 服务是否启动
    echo 2. 端口 3306 是否可用
    echo 3. 用户名密码是否正确
    pause
    exit /b 1
)
echo ✓ 数据库连接成功

REM 检查数据库是否存在
echo.
echo 检查数据库 eagle_blog...
mysql -h localhost -P 3306 -u root -p123456 -e "USE eagle_blog;" >nul 2>&1
if %errorlevel% neq 0 (
    echo 数据库 eagle_blog 不存在，是否要初始化? (Y/n)
    set /p choice=
    if /i "%choice%"=="n" (
        echo 跳过数据库初始化
        goto :show_tables
    )
    echo 初始化数据库...
    mysql -h localhost -P 3306 -u root -p123456 < deploy\database\init.sql
    if %errorlevel% neq 0 (
        echo 错误: 数据库初始化失败
        pause
        exit /b 1
    )
    echo ✓ 数据库初始化成功
) else (
    echo ✓ 数据库 eagle_blog 已存在
)

:show_tables
REM 显示数据库表
echo.
echo 数据库表列表:
mysql -h localhost -P 3306 -u root -p123456 -e "USE eagle_blog; SHOW TABLES;"

echo.
echo ========================================
echo 数据库测试完成!
echo ========================================
echo.
echo 默认测试账户:
echo - 用户名: admin, 密码: 123456
echo - 用户名: test, 密码: 123456
echo.
echo 现在可以使用 Eagle CLI 生成模型:
echo eagle model -t users -s User -f user.go
echo.
pause 